package com.web.controller;

import com.jfinal.aop.Before;
import com.jfinal.core.Controller;
import com.web.interceptor.MemberInterceptor;
import com.web.validator.MemberValidator;
import com.web.model.Member;

/**
 * MemberController
 * 所有 sql 与业务逻辑写在 Model 或 Service 中，不要写在 Controller 中，养成好习惯，有利于大型项目的开发与维护
 */
@Before(MemberInterceptor.class)
public class MemberController extends Controller {

    Member service = Member.me;

    public void index() {
        setAttr("memberPage", service.paginate(getParaToInt(0, 1), 10));
        render("member.html");
    }

    public void add() {
    }

    /**
     * save 与 update 的业务逻辑在实际应用中也应该放在 serivce 之中，
     * 并要对数据进正确性进行验证，在此仅为了偷懒
     */
    @Before(MemberValidator.class)
    public void save() {
        getBean(Member.class).save();
        redirect("/member");
    }

    public void edit() {
        setAttr("member", service.findById(getParaToInt()));
    }

    /**
     * save 与 update 的业务逻辑在实际应用中也应该放在 serivce 之中，
     * 并要对数据进正确性进行验证，在此仅为了偷懒
     */
    @Before(MemberValidator.class)
    public void update() {
        getBean(Member.class).update();
        redirect("/member");
    }

    public void delete() {
        service.deleteById(getParaToInt());
        redirect("/member");
    }
}


